package com.leetcode;

import com.leetcode.common.TreeNode;

/**
 * 112. 路径总和
 * 优化的递归
 *
 * @author fy
 * @date 2022-04-17 23:04
 */
public class Solution112_1 {

    public boolean hasPathSum(TreeNode root, int targetSum) {
        if (root == null) {
            return false;
        }
        int val = targetSum - root.val;
        // 如果当前到了叶子节点了, 只需要看剩下相差的值是不是为0即可，
        // 如果不是再递归也没有意义, 可以减少一次递归
        if (root.left == null && root.right == null) {
            return val == 0;
        }
        return hasPathSum(root.left, val) || hasPathSum(root.right, val);
    }

}
